With distributed computer systems and other types of computer systems that use more than a single computer, a source computer often sends data to a receiving computer. Data to be communicated is often stored in a queue, such as a data buffer. The data may be retrieved from the queue and communicated from the source computer to the receiving computer. One type of queue used with such systems is a priority queue where data is stored in an order that is based on a priority of transmission. Higher priority data from the queue is communicated before lower priority data. The priority of the data may be associated with a type or class of the data. An examplary method of determining a class of data is based on a destination or usage of the data.
When a certain class or type of data in a queue of a sending computer has a high priority for transmission, but where the particular class or type of data cannot be processed at a receiving computer, lower priority data of a different class or type to be communicated from the queue of the sending computer may be blocked. As an example, if a certain type of data is unable to be processed, such as where a particular type of data processing component at the receiving computer is out of service (e.g. when one type of database is disabled or is otherwise not operational), an entire stream of data flow over the connection from the sending computer to the receiving computer would stall. In this example, lower priority data that is not related to the out of service condition of a particular receiver component is blocked as well as the affected data. This situation can become more serious in large systems where multiple data communication hops are involved since the data blockage may further propagate upstream from the original data blockage and affect multiple computer systems and their communication queues.